﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
           
        }

        static int UCLN(int a, int b)
        {
            a = Math.Abs(a);
            b = Math.Abs(b);
            while (a != b)
            {
                if (a > b)
                {
                    a -= b;
                }
                else
                {
                    b -= a;
                }
                if (a == 0 && b == 0)
                {
                    return 1;
                }
            }
            return a;


        }
        private void btCong_Click(object sender, EventArgs e)
        {
            try
            {
                string ps1 = tbPS1.Text;
                string ps2 = tbPS2.Text;
                string[] arrPS1 = ps1.Split('/');
                string[] arrPS2 = ps2.Split('/');
                int ts1 = Int16.Parse(arrPS1[0]);
                int ms1 = Int16.Parse(arrPS1[1]);
                int ts2 = Int16.Parse(arrPS2[0]);
                int ms2 = Int16.Parse(arrPS2[1]);

                if (ms1 == 0 || ms2 == 0)
                {
                    MessageBox.Show("Phân số nhập vào không hợp lệ, vui lòng nhập lại cho đúng, phân số phải có dạng a/b sao cho b khác 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {

                    int tsKQ = ts1 * ms2 + ts2 * ms1;
                    int msKQ = ms1 * ms2;
                    int uc = UCLN(tsKQ, msKQ);
                    tsKQ = tsKQ / uc;
                    msKQ = msKQ / uc;
                    tbKQ.Text = tsKQ.ToString() + "/" + msKQ.ToString();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Phân số nhập vào không hợp lệ, vui lòng nhập lại cho đúng, phân số phải có dạng a/b sao cho b khác 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btTru_Click(object sender, EventArgs e)
        {
            try
            {
                string ps1 = tbPS1.Text;
                string ps2 = tbPS2.Text;
                string[] arrPS1 = ps1.Split('/');
                string[] arrPS2 = ps2.Split('/');
                int ts1 = Int16.Parse(arrPS1[0]);
                int ms1 = Int16.Parse(arrPS1[1]);
                int ts2 = Int16.Parse(arrPS2[0]);
                int ms2 = Int16.Parse(arrPS2[1]);
                if (ms1 == 0 || ms2 == 0)
                {
                    MessageBox.Show("Phân số nhập vào không hợp lệ, vui lòng nhập lại cho đúng, phân số phải có dạng a/b sao cho b <> 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    int tsKQ = ts1 * ms2 - ts2 * ms1;
                    int msKQ = ms1 * ms2;
                    int uc = UCLN(tsKQ, msKQ);
                    tsKQ = tsKQ / uc;
                    msKQ = msKQ / uc;
                    tbKQ.Text = tsKQ.ToString() + "/" + msKQ.ToString();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Phân số nhập vào không hợp lệ, vui lòng nhập lại cho đúng, phân số phải có dạng a/b sao cho b <> 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btNhan_Click(object sender, EventArgs e)
        {
            try
            {
                string ps1 = tbPS1.Text;
                string ps2 = tbPS2.Text;
                string[] arrPS1 = ps1.Split('/');
                string[] arrPS2 = ps2.Split('/');
                int ts1 = Int16.Parse(arrPS1[0]);
                int ms1 = Int16.Parse(arrPS1[1]);
                int ts2 = Int16.Parse(arrPS2[0]);
                int ms2 = Int16.Parse(arrPS2[1]);
                if (ms1 == 0 || ms2 == 0)
                {
                    MessageBox.Show("Phân số nhập vào không hợp lệ, vui lòng nhập lại cho đúng, phân số phải có dạng a/b sao cho b <> 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    int tsKQ = ts1 * ts2;
                    int msKQ = ms1 * ms2;
                    int uc = UCLN(tsKQ, msKQ);
                    tsKQ = tsKQ / uc;
                    msKQ = msKQ / uc;
                    tbKQ.Text = tsKQ.ToString() + "/" + msKQ.ToString();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Phân số nhập vào không hợp lệ, vui lòng nhập lại cho đúng, phân số phải có dạng a/b sao cho b <> 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btChia_Click(object sender, EventArgs e)
        {
            try
            {
                string ps1 = tbPS1.Text;
                string ps2 = tbPS2.Text;
                string[] arrPS1 = ps1.Split('/');
                string[] arrPS2 = ps2.Split('/');
                int ts1 = Int16.Parse(arrPS1[0]);
                int ms1 = Int16.Parse(arrPS1[1]);
                int ts2 = Int16.Parse(arrPS2[0]);
                int ms2 = Int16.Parse(arrPS2[1]);
                if (ms1 == 0 || ms2 == 0)
                {
                    
                    MessageBox.Show("Phân số nhập vào không hợp lệ, vui lòng nhập lại cho đúng, phân số phải có dạng a/b sao cho b <> 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    int tsKQ = ts1 * ms2;
                    int msKQ = ms1 * ts2;
                    int uc = UCLN(tsKQ, msKQ);
                    tsKQ = tsKQ / uc;
                    msKQ = msKQ / uc;
                    tbKQ.Text = tsKQ.ToString() + "/" + msKQ.ToString();
                }
            }

            catch (Exception ex)
            {
                MessageBox.Show("Phân số nhập vào không hợp lệ, vui lòng nhập lại cho đúng, phân số phải có dạng a/b sao cho b <> 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void Form1_MouseHover(object sender, EventArgs e)
        {
            
        }
    }
}
